﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Weibo4Sharp.Model;
using Hammock.Web;
using Weibo4Sharp.Model.Enums;

namespace Weibo4Sharp.Service
{
    public partial class WeiboService
    {
#if !SILVERLIGHT
        #region Sequential Methods


      

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceived()
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceived(int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceived(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceivedSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceivedSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceivedSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceivedBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceivedBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesReceivedBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSent()
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSent(int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSent(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSentSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSentSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSentSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSentBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSentBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboDirectMessage> ListDirectMessagesSentBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboDirectMessage>>("direct_messages/sent", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual WeiboDirectMessage DeleteDirectMessage(long id)
        {
            return WithHammock<WeiboDirectMessage>(WebMethod.Delete, "direct_messages/destroy/{id}", FormatAsString, "?id=", id);
        }

        public virtual WeiboDirectMessage DeleteDirectMessage(int id)
        {
            return WithHammock<WeiboDirectMessage>(WebMethod.Delete, "direct_messages/destroy/{id}", FormatAsString, "?id=", id);
        }

        public virtual WeiboDirectMessage SendDirectMessage(int userId, string text)
        {
            return WithHammock<WeiboDirectMessage>(WebMethod.Post, "direct_messages/new", FormatAsString, "?user_id=", userId, "&text=", text);
        }

        public virtual WeiboDirectMessage SendDirectMessage(string screenName, string text)
        {
            return WithHammock<WeiboDirectMessage>(WebMethod.Post, "direct_messages/new", FormatAsString, "?screen_name=", screenName, "&text=", text);
        }

    

             

        //public virtual WeiboCursorList<int> GetIncomingFriendRequests()
        //{
        //    return WithHammock<WeiboCursorList<int>>("friendships/incoming", FormatAsString);
        //}

        //public virtual WeiboCursorList<int> GetIncomingFriendRequests(long cursor)
        //{
        //    return WithHammock<WeiboCursorList<int>>("friendships/incoming", FormatAsString, "?cursor=", cursor);
        //}

        //public virtual WeiboCursorList<int> GetOutgoingFriendRequests()
        //{
        //    return WithHammock<WeiboCursorList<int>>("friendships/outgoing", FormatAsString);
        //}

        //public virtual WeiboCursorList<int> GetOutgoingFriendRequests(long cursor)
        //{
        //    return WithHammock<WeiboCursorList<int>>("friendships/outgoing", FormatAsString, "?cursor=", cursor);
        //}

       

        public virtual WeiboList CreateList(string listOwner, string name)
        {
            return WithHammock<WeiboList>(WebMethod.Post, "{list_owner}/lists", FormatAsString, "?list_owner=", listOwner, "&name=", name);
        }

        public virtual WeiboList CreateList(string listOwner, string name, string description)
        {
            return WithHammock<WeiboList>(WebMethod.Post, "{list_owner}/lists", FormatAsString, "?list_owner=", listOwner, "&name=", name, "&description=", description);
        }

        public virtual WeiboList CreateList(string listOwner, string name, string description, string mode)
        {
            return WithHammock<WeiboList>(WebMethod.Post, "{list_owner}/lists", FormatAsString, "?list_owner=", listOwner, "&name=", name, "&description=", description, "&mode=", mode);
        }

        public virtual WeiboCursorList<WeiboList> ListListsFor(string listOwner)
        {
            return WithHammock<WeiboCursorList<WeiboList>>("{list_owner}/lists", FormatAsString, "?list_owner=", listOwner);
        }

        public virtual WeiboList GetList(string listOwner, string idOrSlug)
        {
            return WithHammock<WeiboList>("{list_owner}/lists/{id_or_slug}", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual WeiboList DeleteList(string listOwner, string idOrSlug)
        {
            return WithHammock<WeiboList>(WebMethod.Delete, "{list_owner}/lists/{id_or_slug}", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnList(string listOwner, string idOrSlug)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnList(string listOwner, string idOrSlug, int perPage)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&per_page=", perPage);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnList(string listOwner, string idOrSlug, int page, int perPage)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&page=", page, "&per_page=", perPage);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnListSince(string listOwner, string idOrSlug, long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnListSince(string listOwner, string idOrSlug, long sinceId, int perPage)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&since_id=", sinceId, "&per_page=", perPage);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnListSince(string listOwner, string idOrSlug, long sinceId, int page, int perPage)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&since_id=", sinceId, "&page=", page, "&per_page=", perPage);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnListBefore(string listOwner, string idOrSlug, long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnListBefore(string listOwner, string idOrSlug, long maxId, int perPage)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&max_id=", maxId, "&per_page=", perPage);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnListBefore(string listOwner, string idOrSlug, long maxId, int page, int perPage)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("{list_owner}/lists/{id_or_slug}/statuses", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug, "&max_id=", maxId, "&page=", page, "&per_page=", perPage);
        }

        public virtual WeiboCursorList<WeiboList> ListListMembershipsFor(string listOwner)
        {
            return WithHammock<WeiboCursorList<WeiboList>>("{list_owner}/lists/memberships", FormatAsString, "?list_owner=", listOwner);
        }

        public virtual WeiboCursorList<WeiboUser> ListListMembers(string listOwner, string idOrSlug)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("{list_owner}/{id_or_slug}/members", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual WeiboUser AddListMember(string listOwner, string listIdOrSlug, long id)
        {
            return WithHammock<WeiboUser>(WebMethod.Post, "{list_owner}/{id_or_slug}/members", FormatAsString, "?list_owner=", listOwner, "&list_id_or_slug=", listIdOrSlug, "&id=", id);
        }

        public virtual WeiboUser RemoveListMember(string listOwner, string listIdOrSlug, long id)
        {
            return WithHammock<WeiboUser>(WebMethod.Delete, "{list_owner}/{id_or_slug}/members", FormatAsString, "?list_owner=", listOwner, "&list_id_or_slug=", listIdOrSlug, "&id=", id);
        }

        public virtual WeiboCursorList<WeiboList> AddListMembers(string listOwner, string listIdOrSlug, long userId)
        {
            return WithHammock<WeiboCursorList<WeiboList>>(WebMethod.Post, "{list_owner}/{id_or_slug}/create_all", FormatAsString, "?list_owner=", listOwner, "&list_id_or_slug=", listIdOrSlug, "&user_id=", userId);
        }

        public virtual WeiboCursorList<WeiboList> AddListMembers(string listOwner, string listIdOrSlug, string screenName)
        {
            return WithHammock<WeiboCursorList<WeiboList>>(WebMethod.Post, "{list_owner}/{id_or_slug}/create_all", FormatAsString, "?list_owner=", listOwner, "&list_id_or_slug=", listIdOrSlug, "&screen_name=", screenName);
        }

        public virtual WeiboUser VerifyListMembership(string listOwner, string listIdOrSlug, long id)
        {
            return WithHammock<WeiboUser>("{list_owner}/{id_or_slug}/members/{id}", FormatAsString, "?list_owner=", listOwner, "&list_id_or_slug=", listIdOrSlug, "&id=", id);
        }

        public virtual WeiboCursorList<WeiboList> ListListSubscriptionsFor(string listOwner)
        {
            return WithHammock<WeiboCursorList<WeiboList>>("{list_owner}/lists/subscriptions", FormatAsString, "?list_owner=", listOwner);
        }

        public virtual WeiboCursorList<WeiboUser> ListListSubscribers(string listOwner, string idOrSlug)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("{list_owner}/{id_or_slug}/subscribers", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual WeiboUser FollowList(string listOwner, string idOrSlug)
        {
            return WithHammock<WeiboUser>(WebMethod.Post, "{list_owner}/{id_or_slug}/subscribers", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual WeiboUser UnfollowList(string listOwner, string idOrSlug)
        {
            return WithHammock<WeiboUser>(WebMethod.Delete, "{list_owner}/{id_or_slug}/subscribers", FormatAsString, "?list_owner=", listOwner, "&id_or_slug=", idOrSlug);
        }

        public virtual WeiboUser VerifyListSubscription(string listOwner, string listIdOrSlug, long id)
        {
            return WithHammock<WeiboUser>("{list_owner}/{id_or_slug}/subscribers/{id}", FormatAsString, "?list_owner=", listOwner, "&list_id_or_slug=", listIdOrSlug, "&id=", id);
        }

        public virtual WeiboUser FollowUserNotifications(string screenName)
        {
            return WithHammock<WeiboUser>(WebMethod.Post, "users/notifications/follow", FormatAsString, "?screen_name=", screenName);
        }

        public virtual WeiboUser FollowUserNotifications(int userId)
        {
            return WithHammock<WeiboUser>(WebMethod.Post, "users/notifications/follow", FormatAsString, "?user_id=", userId);
        }

        public virtual WeiboUser UnfollowUserNotifications(int userId)
        {
            return WithHammock<WeiboUser>(WebMethod.Post, "users/notifications/leave", FormatAsString, "?user_id=", userId);
        }

        public virtual WeiboUser UnfollowUserNotifications(string userScreenName)
        {
            return WithHammock<WeiboUser>(WebMethod.Post, "users/notifications/leave", FormatAsString, "?user_screen_name=", userScreenName);
        }

        public virtual IEnumerable<WeiboSavedSearch> ListSavedSearches()
        {
            return WithHammock<IEnumerable<WeiboSavedSearch>>("saved_searches", FormatAsString);
        }

        public virtual WeiboSavedSearch GetSavedSearch(long id)
        {
            return WithHammock<WeiboSavedSearch>("saved_searches/show", FormatAsString, "?id=", id);
        }

        public virtual WeiboSavedSearch CreateSavedSearch(string query)
        {
            return WithHammock<WeiboSavedSearch>(WebMethod.Post, "saved_searches/create", FormatAsString, "?query=", query);
        }

        public virtual WeiboSavedSearch DeleteSavedSearch(long id)
        {
            return WithHammock<WeiboSavedSearch>(WebMethod.Delete, "saved_searches/destroy/{id}", FormatAsString, "?id=", id);
        }

        public virtual WeiboSearchResult Search(string q)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?q=", q);
        }

        public virtual WeiboSearchResult Search(string q, WeiboSearchResultType resultType)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?q=", q, "&result_type=", resultType);
        }

        public virtual WeiboSearchResult Search(string q, int rpp)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?q=", q, "&rpp=", rpp);
        }

        public virtual WeiboSearchResult Search(string q, int rpp, WeiboSearchResultType resultType)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?q=", q, "&rpp=", rpp, "&result_type=", resultType);
        }

        public virtual WeiboSearchResult Search(string q, int page, int rpp)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?q=", q, "&page=", page, "&rpp=", rpp);
        }

        public virtual WeiboSearchResult Search(string q, int page, int rpp, WeiboSearchResultType resultType)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?q=", q, "&page=", page, "&rpp=", rpp, "&result_type=", resultType);
        }

        public virtual WeiboSearchResult SearchSince(long since_id, string q)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?since_id=", since_id, "&q=", q);
        }

        public virtual WeiboSearchResult SearchSince(long since_id, string q, WeiboSearchResultType resultType)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?since_id=", since_id, "&q=", q, "&result_type=", resultType);
        }

        public virtual WeiboSearchResult SearchSince(long since_id, string q, int rpp)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?since_id=", since_id, "&q=", q, "&rpp=", rpp);
        }

        public virtual WeiboSearchResult SearchSince(long since_id, string q, int rpp, WeiboSearchResultType resultType)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?since_id=", since_id, "&q=", q, "&rpp=", rpp, "&result_type=", resultType);
        }

        public virtual WeiboSearchResult SearchSince(long since_id, string q, int page, int rpp)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?since_id=", since_id, "&q=", q, "&page=", page, "&rpp=", rpp);
        }

        public virtual WeiboSearchResult SearchSince(long since_id, string q, int page, int rpp, WeiboSearchResultType resultType)
        {
            return WithHammock<WeiboSearchResult>("search", FormatAsString, "?since_id=", since_id, "&q=", q, "&page=", page, "&rpp=", rpp, "&result_type=", resultType);
        }

        //public virtual IEnumerable<WeiboTrends> 
       

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimeline()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimeline(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimeline(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimelineSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimelineSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimelineSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimelineBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimelineBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnHomeTimelineBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/home_timeline", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimeline()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimeline(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimeline(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimelineSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimelineSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimelineSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimelineBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimelineBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnFriendsTimelineBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/friends_timeline", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnPublicTimeline()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/public_timeline", FormatAsString, "?source=", _consumerKey);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimeline()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimeline(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimeline(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimelineSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimelineSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimelineSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimelineBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimelineBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnUserTimelineBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimeline(long userId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimeline(long userId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimeline(int userId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineSince(int userId, long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineSince(int userId, long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineSince(int userId, long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineBefore(int userId, long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineBefore(int userId, long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineBefore(int userId, long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?user_id=", userId, "&max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimeline(string screenName)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimeline(string screenName, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimeline(string screenName, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineSince(string screenName, long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineSince(string screenName, long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineSince(string screenName, long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineBefore(string screenName, long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineBefore(string screenName, long maxId, int page)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&max_id=", maxId, "&page=", page);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosOnSpecifiedUserTimelineBefore(string screenName, long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/user_timeline", FormatAsString, "?screen_name=", screenName, "&max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMe()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMe(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMe(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMeSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMeSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMeSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMeBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMeBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListWeibosMentioningMeBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/mentions", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMe()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMe(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMe(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMe(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMeSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMeSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMeBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMeBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosByMeBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_by_me", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMe()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMe(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMe(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMeSince(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMeSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMeSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMeBefore(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMeBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosToMeBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeiboed_to_me", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibos()
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibos(int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibos(int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibos(long sinceId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?since_id=", sinceId);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibosSince(long sinceId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?since_id=", sinceId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibosSince(long sinceId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?since_id=", sinceId, "&page=", page, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibosSince(long maxId)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?max_id=", maxId);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibosBefore(long maxId, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?max_id=", maxId, "&count=", count);
        }

        public virtual IEnumerable<WeiboStatus> ListReWeibosOfMyWeibosBefore(long maxId, int page, int count)
        {
            return WithHammock<IEnumerable<WeiboStatus>>("statuses/reWeibos_of_me", FormatAsString, "?max_id=", maxId, "&page=", page, "&count=", count);
        }       
        

        public virtual WeiboCursorList<WeiboUser> ListFriends()
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/friends", FormatAsString);
        }

        public virtual WeiboCursorList<WeiboUser> ListFriends(long cursor)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/friends", FormatAsString, "?cursor=", cursor);
        }

        public virtual WeiboCursorList<WeiboUser> ListFriendsOf(long userId)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/friends", FormatAsString, "?user_id=", userId);
        }

        public virtual WeiboCursorList<WeiboUser> ListFriendsOf(long userId, int cursor)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/friends", FormatAsString, "?user_id=", userId, "&cursor=", cursor);
        }

        public virtual WeiboCursorList<WeiboUser> ListFriendsOf(string screenName)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/friends", FormatAsString, "?screen_name=", screenName);
        }

        public virtual WeiboCursorList<WeiboUser> ListFriendsOf(string screenName, int cursor)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/friends", FormatAsString, "?screen_name=", screenName, "&cursor=", cursor);
        }

        public virtual WeiboCursorList<WeiboUser> ListFollowers()
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/followers", FormatAsString);
        }

        public virtual WeiboCursorList<WeiboUser> ListFollowers(int cursor)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/followers", FormatAsString, "?cursor=", cursor);
        }

        public virtual WeiboCursorList<WeiboUser> ListFollowersOf(long userId)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/followers", FormatAsString, "?user_id=", userId);
        }

        public virtual WeiboCursorList<WeiboUser> ListFollowersOf(long userId, int cursor)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/followers", FormatAsString, "?user_id=", userId, "&cursor=", cursor);
        }

        public virtual WeiboCursorList<WeiboUser> ListFollowersOf(string screenName)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/followers", FormatAsString, "?screen_name=", screenName);
        }

        public virtual WeiboCursorList<WeiboUser> ListFollowersOf(string screenName, int cursor)
        {
            return WithHammock<WeiboCursorList<WeiboUser>>("statuses/followers", FormatAsString, "?screen_name=", screenName, "&cursor=", cursor);
        }



        //public virtual IEnumerable<WeiboUserSuggestions> ListSuggestedUserCategories()
        //{
        //    return WithHammock<IEnumerable<WeiboUserSuggestions>>("users/suggestions", FormatAsString);
        //}

        //public virtual WeiboUserSuggestions ListSuggestedUsers(string categorySlug)
        //{
        //    return WithHammock<WeiboUserSuggestions>("/users/suggestions/{category_slug}", FormatAsString, "?category_slug=", categorySlug);
        //}        

        #endregion
#endif
    }
}
